Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

288
Vistas
Javascript Regex to convert _xxx_ to [i]xxx[i] ignoring any text between <> (URLs) or `` (code)

I'm trying to reformat Slack formatting to bbcode and need a little help. Slack does italics like this:

_this is italic_ and this isn't

My current expression (/\_([^\_]*)\_/gm) works but unfortunately picks up underscores in URLs and inside code snippets. Slack formats URLs and code like this:

<www.thislink.com|here's a link>
`here's a code snippet`

How can I tell regex not to match any underscore pairs inside a link or code snippet? I've been trying negative lookahead and lookbehind but without success.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

You need to match and capture what you need and just match what you do not need.

Once you get a match, analyze it and implement the appropriate code logic:

const re = /<[^<>|]*(?:\|[^<>]*)?>|`[^`]*`|_([^_]*)_/g;
const text = "<www.thislink.com|here's a link>\n`here's a code snippet`\n_this is italic_ and this isn't";
console.log( text.replace(re, (m,g) => g !== undefined ? "[i]" + g + "[/i]" : m ) )

See the regex demo. Details:

  • <[^<>|]*(?:\|[^<>]*)?> - a <, then zero or more chars other than <, > and |, then an optional sequence of a | and then zero or more chars other than < and > and then a > char
  • | - or
  • `[^`]*` - a backtick, zero or more chars other than a backtick and a backtick
  • | - or
  • _([^_]*)_ - _, Group 1: zero or more chars other than _, a _.
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda